

package com.maoshi.shop.groupbuy.comment.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.maoshi.shop.bean.model.Product;
import com.maoshi.shop.bean.param.OfflineHandleEventAuditParam;
import com.maoshi.shop.common.util.PageParam;
import com.maoshi.shop.groupbuy.comment.api.dto.ApiGroupActivityDto;
import com.maoshi.shop.groupbuy.comment.dto.GroupActivityDto;
import com.maoshi.shop.groupbuy.comment.model.GroupActivity;

import java.util.List;

/**
 * 拼团活动表
 *
 * @author LGH
 * @date 2019-08-27 17:55:57
 */
public interface GroupActivityService extends IService<GroupActivity> {


    /**
     * 跟新拼团活动为已删除状态
     */
    void updateToDelete(Long groupActivityId);

    /**
     * 获取分页列表
     *
     * @param page             分页对象
     * @param groupActivityDto 拼团活动
     * @return 分页对象
     */
    IPage<GroupActivityDto> getGroupActivityPage(PageParam<GroupActivityDto> page, GroupActivityDto groupActivityDto);

    /**
     * 获取拼团活动信息
     *
     * @param groupActivityId 活动ID
     * @param prodId          商品ID
     * @return Api活动对象
     */
    ApiGroupActivityDto getApiGroupActivityInfo(Long groupActivityId, Long prodId);

    /**
     * 失效活动
     */
    List<Product> invalidGroupActivity(GroupActivity groupActivity);

    /**
     * 平台  -- 下架活动
     */
    void offline(GroupActivity groupActivity, String offlineReason, Long sysUserId);

    /**
     * 平台 -- 审核活动
     */
    void auditGroupActivity(OfflineHandleEventAuditParam offlineHandleEventAuditParam, Long sysUserId);

    /**
     * 审核申请
     */
    void auditApply(Long eventId, Long activityId, String reapplyReason);
}
